// var i;
// var AL_GAME_HUA_Define = require("./AL_GAME_HUA_Define");
// var AL_GAME_HUA_GameConst = require("./AL_GAME_HUA_GameConst");
// var l = cc._decorator;
// var u = l.ccclass;
// var p = l.property;
// var f = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.choose_bar = null;
//         t.buttons = [];
//         t.small_icons = [];
//         t.big_icons = [];
//         t.pay_red = null;
//         t.mission_red = null;
//         t.on_Choose_Item = null;
//         t.chooseIndex = 0;
//         t.buttonSize = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.init = function () {
//         var e = this;
//         if (
//             ("wx" != ailin_sdk_manager.getSysPlatformName() && "tt" != ailin_sdk_manager.getSysPlatformName()) ||
//             !AL_GAME_HUA_GameConst.GameConst.getInstance().rank_enabled
//         ) {
//             this.buttons[3].active = !1;
//             this.small_icons[3].active = !1;
//             this.big_icons[3].active = !1;
//             this.buttons.removeAt(3);
//             this.small_icons.removeAt(3);
//             this.big_icons.removeAt(3);
//         }
//         this.buttonSize = Math.max(cc.view.getDesignResolutionSize().width, cc.winSize.width) / this.buttons.length;
//         var t = function (t) {
//             var o = n.buttons[t];
//             o.width = n.buttonSize;
//             o.on(
//                 cc.Node.EventType.TOUCH_END,
//                 function () {
//                     e.chooseIndex = t;
//                     var n = e.yidong_xuanzetiao_dao_zhiding_anniu(t);
//                     if (e.on_Choose_Item) {
//                         e.on_Choose_Item(t, n);
//                     }
//                 },
//                 n
//             );
//             var i = n.small_icons[t];
//             var r = n.big_icons[t];
//             i.x = n.huoqu_anniu_x_zuobiao(t);
//             r.x = n.huoqu_anniu_x_zuobiao(t);
//             o.x = n.huoqu_anniu_x_zuobiao(t);
//         };
//         var n = this;
//         for (var o = 0; o < this.buttons.length; o++) {
//             t(o);
//         }
//         this.choose_bar.width = this.buttonSize;
//     };
//     t.prototype.shezhi_xuanzetiao_weizhi = function (e) {
//         this.choose_bar.x = this.huoqu_anniu_x_zuobiao(e);
//     };
//     t.prototype.yidong_xuanzetiao_dao_zhiding_anniu = function (e) {
//         var t = this;
//         var n = AL_GAME_HUA_Define.Define.MAIN_UI_MOVE_SPEED;
//         var o = this.huoqu_anniu_x_zuobiao(e) - this.choose_bar.x;
//         var i = Math.abs(o / n);
//         this.choose_bar.stopAllActions();
//         cc.tween(this.choose_bar)
//             .to(
//                 i,
//                 {
//                     x: this.huoqu_anniu_x_zuobiao(e)
//                 },
//                 {
//                     easing: "sineOut"
//                 }
//             )
//             .call(function () {
//                 t.choose_bar.x = t.huoqu_anniu_x_zuobiao(e);
//             })
//             .start();
//         return i;
//     };
//     t.prototype.huoqu_anniu_x_zuobiao = function (e) {
//         return (
//             -Math.max(cc.view.getDesignResolutionSize().width, cc.winSize.width) / 2 +
//             this.buttonSize * e +
//             this.buttonSize / 2
//         );
//     };
//     __decorate([p(cc.Node)], t.prototype, "choose_bar", void 0);
//     __decorate([p([cc.Node])], t.prototype, "buttons", void 0);
//     __decorate([p([cc.Node])], t.prototype, "small_icons", void 0);
//     __decorate([p([cc.Node])], t.prototype, "big_icons", void 0);
//     __decorate([p(cc.Node)], t.prototype, "pay_red", void 0);
//     __decorate([p(cc.Node)], t.prototype, "mission_red", void 0);
//     return __decorate([u], t);
// })(cc.Component);
// exports.default = f;

// 导入外部模块
const HDPPDefine = require("./AL_GAME_HUA_Define");
const HDPPGameConst = require("./AL_GAME_HUA_GameConst");

// Cocos Creator 装饰器
const { ccclass, property } = cc._decorator;

/**
 * 功能类 CustomComponent 继承自 cc.Component
 * 用于管理游戏中的按钮及相关交互逻辑
 */
@ccclass
class CustomComponent extends cc.Component {
    // 属性定义
    @property(cc.Node)
    choose_bar = null; // 选择条节点

    @property([cc.Node])
    buttons = []; // 按钮节点数组

    @property([cc.Node])
    small_icons = []; // 小图标节点数组

    @property([cc.Node])
    big_icons = []; // 大图标节点数组

    @property(cc.Node)
    pay_red = null; // 支付红点节点

    @property(cc.Node)
    mission_red = null; // 任务红点节点

    // 回调函数，用于选中按钮时触发的事件
    on_Choose_Item = null;

    chooseIndex = 0; // 当前选中按钮的索引
    buttonSize = null; // 按钮的宽度，用于动态布局

    /**
     * 初始化逻辑
     * 设置按钮的点击事件和布局
     */
    init() {
        const sysPlatform = ailin_sdk_manager.getSysPlatformName(); // 获取当前平台名称
        const isRankEnabled = HDPPGameConst.GameConst.getInstance().rank_enabled; // 检查排行榜是否启用

        // 检查是否为指定平台，且排行榜是否启用
        if ((sysPlatform !== "wx" && sysPlatform !== "tt") || !isRankEnabled) {
            // 如果不满足条件，则隐藏第4个按钮及其相关图标
            this.buttons[3].active = false;
            this.small_icons[3].active = false;
            this.big_icons[3].active = false;
            this.buttons.splice(3, 1);
            this.small_icons.splice(3, 1);
            this.big_icons.splice(3, 1);
        }

        // 计算按钮大小
        const screenWidth = Math.max(
            cc.view.getDesignResolutionSize().width,
            cc.winSize.width
        );
        this.buttonSize = screenWidth / this.buttons.length;

        // 为每个按钮绑定点击事件
        this.buttons.forEach((buttonNode, index) => {
            this.bindButtonEvent(index);
        });

        // 设置选择条初始宽度
        this.choose_bar.width = this.buttonSize;
    }

    /**
     * 绑定按钮点击事件
     * @param {number} index 按钮索引
     */
    bindButtonEvent(index) {
        const buttonNode = this.buttons[index];
        const smallIconNode = this.small_icons[index];
        const bigIconNode = this.big_icons[index];

        // 设置按钮宽度
        buttonNode.width = this.buttonSize;

        // 为按钮绑定点击事件
        buttonNode.on(
            cc.Node.EventType.TOUCH_END,
            () => {
                this.chooseIndex = index;
                const moveDuration = this.yidong_xuanzetiao_dao_zhiding_anniu(index);
                if (this.on_Choose_Item) {
                    this.on_Choose_Item(index, moveDuration);
                }
            },
            this
        );

        // 设置按钮及图标的初始位置
        buttonNode.x = this.huoqu_anniu_x_zuobiao(index);
        smallIconNode.x = this.huoqu_anniu_x_zuobiao(index);
        bigIconNode.x = this.huoqu_anniu_x_zuobiao(index);
    }

    /**
     * 设置选择条的位置
     * @param {number} index 按钮索引
     */
    shezhi_xuanzetiao_weizhi(index) {
        this.choose_bar.x = this.huoqu_anniu_x_zuobiao(index);
    }

    /**
     * 移动选择条到指定按钮
     * @param {number} index 按钮索引
     * @returns {number} 动画持续时间
     */
    yidong_xuanzetiao_dao_zhiding_anniu(index) {
        const movementSpeed = HDPPDefine.Define.MAIN_UI_MOVE_SPEED;
        const targetX = this.huoqu_anniu_x_zuobiao(index);
        const distance = targetX - this.choose_bar.x;
        const movementDuration = Math.abs(distance / movementSpeed);

        // 停止所有当前动作，开始移动动画
        this.choose_bar.stopAllActions();
        cc.tween(this.choose_bar)
            .to(
                movementDuration,
                { x: targetX },
                { easing: "sineOut" }
            )
            .call(() => {
                this.choose_bar.x = targetX;
            })
            .start();

        return movementDuration;
    }

    /**
     * 计算按钮的X坐标
     * @param {number} index 按钮索引
     * @returns {number} 按钮的X坐标
     */
    huoqu_anniu_x_zuobiao(index) {
        const screenWidth = Math.max(
            cc.view.getDesignResolutionSize().width,
            cc.winSize.width
        );
        return (
            -screenWidth / 2 +
            this.buttonSize * index +
            this.buttonSize / 2
        );
    }
}

// 导出默认类
module.exports = CustomComponent;

// // 导入外部模块
// var HDPPDefine = require("./AL_GAME_HUA_Define");
// var HDPPGameConst = require("./AL_GAME_HUA_GameConst");

// // Cocos Creator 装饰器
// var ccDecorator = cc._decorator;
// var ccclass = ccDecorator.ccclass;
// var property = ccDecorator.property;

// // 功能类定义
// /**
//  * 类 f 继承自 cc.Component
//  */
// var f = (function (BaseComponent) {
//     // 构造函数
//     function CustomComponent() {
//         // 调用父类构造函数
//         var self = (null !== BaseComponent && BaseComponent.apply(this, arguments)) || this;
//         self.choose_bar = null;
//         self.buttons = [];
//         self.small_icons = [];
//         self.big_icons = [];
//         self.pay_red = null;
//         self.mission_red = null;
//         self.on_Choose_Item = null;
//         self.chooseIndex = 0;
//         self.buttonSize = null;
//         return self;
//     }
//     // 继承父类
//     __extends(CustomComponent, BaseComponent);

//     // 初始化函数
//     CustomComponent.prototype.init = function () {
//         var self = this;
//         var sysPlatform = ailin_sdk_manager.getSysPlatformName();
//         var isRankEnabled = HDPPGameConst.GameConst.getInstance().rank_enabled;

//         // 检查是否为指定平台，且排行榜是否启用
//         if (
//             ("wx" != sysPlatform && "tt" != sysPlatform) ||
//             !isRankEnabled
//         ) {
//             // 如果不满足条件，则隐藏第4个按钮及其相关图标
//             this.buttons[3].active = false;
//             this.small_icons[3].active = false;
//             this.big_icons[3].active = false;
//             this.buttons.removeAt(3);
//             this.small_icons.removeAt(3);
//             this.big_icons.removeAt(3);
//         }

//         // 计算按钮大小
//         this.buttonSize = Math.max(cc.view.getDesignResolutionSize().width, cc.winSize.width) / this.buttons.length;
        
//         // 绑定按钮点击事件
//         var buttonBindingFunction = function (index) {
//             var button = self.buttons[index];
//             button.width = self.buttonSize;
//             button.on(
//                 cc.Node.EventType.TOUCH_END,
//                 function () {
//                     self.chooseIndex = index;
//                     var moveDuration = self.yidong_xuanzetiao_dao_zhiding_anniu(index);
//                     if (self.on_Choose_Item) {
//                         self.on_Choose_Item(index, moveDuration);
//                     }
//                 },
//                 self
//             );

//             var smallIcon = self.small_icons[index];
//             var bigIcon = self.big_icons[index];
//             smallIcon.x = self.huoqu_anniu_x_zuobiao(index);
//             bigIcon.x = self.huoqu_anniu_x_zuobiao(index);
//             button.x = self.huoqu_anniu_x_zuobiao(index);
//         };

//         // 为每个按钮绑定事件
//         for (var buttonIndex = 0; buttonIndex < this.buttons.length; buttonIndex++) {
//             buttonBindingFunction(buttonIndex);
//         }
        
//         // 设置选择条宽度
//         this.choose_bar.width = this.buttonSize;
//     };

//     // 设置选择条的位置
//     CustomComponent.prototype.shezhi_xuanzetiao_weizhi = function (index) {
//         this.choose_bar.x = this.huoqu_anniu_x_zuobiao(index);
//     };

//     // 移动选择条到指定按钮
//     CustomComponent.prototype.yidong_xuanzetiao_dao_zhiding_anniu = function (index) {
//         var self = this;
//         var movementSpeed = HDPPDefine.Define.MAIN_UI_MOVE_SPEED;
//         var distance = this.huoqu_anniu_x_zuobiao(index) - this.choose_bar.x;
//         var movementDuration = Math.abs(distance / movementSpeed);

//         this.choose_bar.stopAllActions();
//         cc.tween(this.choose_bar)
//             .to(
//                 movementDuration,
//                 {
//                     x: this.huoqu_anniu_x_zuobiao(index)
//                 },
//                 {
//                     easing: "sineOut"
//                 }
//             )
//             .call(function () {
//                 self.choose_bar.x = self.huoqu_anniu_x_zuobiao(index);
//             })
//             .start();
        
//         return movementDuration;
//     };

//     // 计算按钮的X坐标
//     CustomComponent.prototype.huoqu_anniu_x_zuobiao = function (index) {
//         return (
//             -Math.max(cc.view.getDesignResolutionSize().width, cc.winSize.width) / 2 +
//             this.buttonSize * index +
//             this.buttonSize / 2
//         );
//     };

//     // 属性装饰器
//     __decorate([property(cc.Node)], CustomComponent.prototype, "choose_bar", void 0);
//     __decorate([property([cc.Node])], CustomComponent.prototype, "buttons", void 0);
//     __decorate([property([cc.Node])], CustomComponent.prototype, "small_icons", void 0);
//     __decorate([property([cc.Node])], CustomComponent.prototype, "big_icons", void 0);
//     __decorate([property(cc.Node)], CustomComponent.prototype, "pay_red", void 0);
//     __decorate([property(cc.Node)], CustomComponent.prototype, "mission_red", void 0);

//     return __decorate([ccclass], CustomComponent);
// })(cc.Component);

// // 导出默认类
// exports.default = f;